home *** CD-ROM | disk | FTP | other *** search
File List | 1996-10-30 | 2.1 KB | 73 lines |
- '
- '
- ' CRACK ART 'CA_UNPACK'
- '
- ' Dekompressionsroutine für CA?-Bilder
- '
- ' © Detlef Röttger & Jan Borchers 1989-91
- '
- '
- INLINE ca_unpack%,288
- '
- resolution&=XBIOS(4) ! Auflösung holen
- IF resolution&>2 ! keine ST-Auflösung
- END
- ENDIF
- '
- DO
- fpath$=CHR$(GEMDOS(25)+65)+":"+DIR$(0)+"\*.CA"+CHR$(resolution&+49)
- FILESELECT #"LOAD CA",fpath$,"",fname$ ! File auswählen
- CLS
- IF EXIST(fname$)=FALSE ! File nicht existent oder Abbruch
- END
- ENDIF
- '
- RESERVE 64000
- '
- OPEN "I",#1,fname$ ! File öffnen
- buffer%=MALLOC(LOF(#1)) ! Buffer reservieren
- CLOSE #1
- '
- IF buffer%<>0
- BLOAD fname$,buffer% ! Bild laden
- '
- IF DPEEK(buffer%)<>&H4341 ! 'CA'-Kennung checken
- PRINT "Kein CA-Bild! (Abbruch)"
- ELSE
- IF PEEK(buffer%+3)<>resolution& ! Auflösung checken
- PRINT "Falsche Auflösung! (Abbruch)"
- ELSE
- '
- SELECT resolution&
- CASE 0 ! Low Res
- ~XBIOS(6,L:buffer%+4) ! Farben setzen
- offset%=36 ! Image-Beginn
- CASE 1 ! Med Res
- ~XBIOS(6,L:buffer%+4)
- offset%=12
- CASE 2 ! High Res
- ' Monochrombilder besitzen keine Farbpalette
- offset%=4
- ENDSELECT
- '
- HIDEM
- IF PEEK(buffer%+2)=0 ! Bild ungepackt
- BMOVE buffer%+offset%,XBIOS(2),32000
- ELSE ! Bild gepackt
- ~C:ca_unpack%(L:buffer%+offset%,L:XBIOS(2)) ! Image Auspacken
- ENDIF
- SHOWM
- '
- ENDIF
- ENDIF
- '
- ~MFREE(buffer%) ! Speicher wieder freigeben
- ENDIF
- RESERVE
- '
- WHILE MOUSEK
- WEND
- REPEAT
- UNTIL MOUSEK
- LOOP
-